package com.yuw.io.datastream;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class TestDriver {
    public static void main(String[] args) {
        System.out.println("--------------------------");
        test01();
    }

    /**
     * 对象流
     */
    public static void test01() {
        // 创建一个对象Student
        Student stu0 = new Student("zhangsan", "10086", 90);
        // 使用对象输出流将内存中的对象在内存中的信息保输出一个文件中
        try (
                // 对象输出流写出对象
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:/temp/filesdemo/stu0.dat"));
                // 使用对象输入流读取对象流文件
                ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:/temp/filesdemo/stu0.dat"));

        ) {
            oos.writeObject(stu0); // stu0这个内存中的对象信息保存到了文件中
            System.out.println("内存对象stu0保存到了文件中了");
            System.out.println("写出的文件对象的内容：");
            System.out.println(stu0);
            System.out.println("====================");
            // 读入Student对象
            Object obj = ois.readObject();
            System.out.println("读入的对象的内容：");
            System.out.println(obj);

            System.out.println("====================");
            // 对象流写出的对象 stu0 和 对象输入流读入的对象 obj 在内存中是在同一个存储地址么？ 内存中是不是同一个对象？
            System.out.println("stu0==obj:" + (stu0 == obj));

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
